//
//  YJJInterstitialAd.h
//  YJJAdSDK
//
//  Created by 陈坤 on 2025/8/22.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@protocol YJJInterstitialAdDelegate;

@interface YJJInterstitialAd : NSObject

/**
 代理回调
*/
@property (nonatomic, weak) id<YJJInterstitialAdDelegate> delegate;

/*
 设置根控制器，用于落地页弹出
 */
@property (nonatomic, weak) UIViewController *viewController;

/**
 广告位id
*/
@property (nonatomic, copy) NSString *posId;

/**
 是否静音，默认静音
 */
@property (nonatomic, assign) BOOL isMuted;

/**
 是否展示关闭按钮，默认展示，为YES则不展示
*/
@property (nonatomic, assign) BOOL hiddenCloseBtn;

/**
 *  广告是否有效，以下情况会返回NO，建议在展示广告之前判断，否则会影响计费或展示失败
 *  a.广告未拉取成功
 *  b.广告已经曝光过
 *  c.广告过期
 *
 */
- (BOOL)isAdValid;

/**
 加载广告数据
*/
- (void)loadInterstitialAd;

/**
 展示广告
*/
- (void)showInterstitialAd;


- (void)setAdScenes:(NSDictionary *)scenes;

/**
 获取广告的竞价价格，单位分，为0则表示未成功获取到广告，或者不支持竞价，开启该功能需要联系媒介商务
 */
- (NSInteger)getBidPrice;
/**
 发送竞价成功上报
 @param price 赢价价格，单位分
 */
- (void)sendWinNotice:(NSInteger)price;

/**
 发送竞价失败上报
 @param price 赢价价格，单位分
 */
- (void)sendLossNotice:(NSInteger)price;

@end

@protocol YJJInterstitialAdDelegate <NSObject>

/**
 YJJInterstitialAd请求成功回调
 
 @param interstitialAd 插屏广告实例对象
*/
- (void)YJJ_interstitialAdSuccedToLoad:(YJJInterstitialAd *)interstitialAd;

/**
 YJJInterstitialAd请求失败回调

 @param interstitialAd 插屏广告实例对象
 @param error 失败原因
*/
- (void)YJJ_interstitialAdFailedToLoad:(YJJInterstitialAd *)interstitialAd error:(NSError *)error;

/**
 YJJInterstitialAd展示在屏幕内回调

 @param interstitialAd 插屏广告实例对象
*/
- (void)YJJ_interstitialAdDidPresent:(YJJInterstitialAd *)interstitialAd;

/**
 YJJInterstitialAd展示在屏幕内失败回调

 @param interstitialAd 插屏广告实例对象
*/
- (void)YJJ_interstitialAdFailedToPresent:(YJJInterstitialAd *)interstitialAd error:(NSError *)error;

/**
 YJJInterstitialAd点击回调

 @param interstitialAd 插屏广告实例对象
*/
- (void)YJJ_interstitialAdDidClick:(YJJInterstitialAd *)interstitialAd;

/**
 YJJInterstitialAd关闭回调

 @param interstitialAd 插屏广告实例对象
*/
- (void)YJJ_interstitialAdDidClose:(YJJInterstitialAd *)interstitialAd;

/**
 YJJInterstitialAd展示回调
 
 @param interstitialAd 广告实例
 */
- (void)YJJ_interstitialAdExposure:(YJJInterstitialAd *)interstitialAd;

/**
 YJJInterstitialAd展示上报回调
 
 @param interstitialAd 广告实例
 */
- (void)YJJ_interstitialAdExposureReport:(YJJInterstitialAd *)interstitialAd;


/**
 YJJInterstitialAd点击上报回调

 @param interstitialAd 插屏广告实例对象
*/
- (void)YJJ_interstitialAdDidClickReport:(YJJInterstitialAd *)interstitialAd;

/**
 YJJInterstitialAd关闭落地页回调
 
 @param interstitialAd 广告实例
 */
- (void)YJJ_interstitialAdCloseLandingPage:(YJJInterstitialAd *)interstitialAd;

@end

NS_ASSUME_NONNULL_END
